package com.leadingsoft.pwxk.model;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.OneToMany;

import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

import com.alibaba.fastjson.annotation.JSONField;

import lombok.Getter;
import lombok.Setter;

/**
 * @author: lipan 2018年5月7日
 * @description: ( 水污染物排放信息-申请排放信息)
 * 
 */
@Entity
@Getter
@Setter
public class WaterDrainApply extends Basic {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 备注信息集合
	 */
	@Fetch(FetchMode.SELECT)
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	@JSONField(name = "OTHERCONTENT")
	List<OtherContent> otherContent;
	/**
	 * 主要排放口list集合
	 */

	@Fetch(FetchMode.SELECT)
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	@JSONField(name = "listzy")
	List<DrainInfoWaterApplyOne> oneList;
	/**
	 * 一般排放口list集合
	 */

	@Fetch(FetchMode.SELECT)
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	@JSONField(name = "listyb")
	List<DrainInfoWaterApplyTwo> twoList;
	/**
	 * 设施或车间废水排放口list集合
	 */

	@Fetch(FetchMode.SELECT)
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	@JSONField(name = "listss")
	List<DrainInfoWaterApplyThr> thrList;

	/**
	 * 主要排放口合计list集合
	 */
	@Fetch(FetchMode.SELECT)
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	@JSONField(name = "LISTCOUNTZY")
	List<DrainInfoWaterApplyCountOne> oneCountList;

	/**
	 * 全厂排放口总计list集合
	 */
	@Fetch(FetchMode.SELECT)
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	@JSONField(name = "LISTCOUNTQC")
	List<DrainInfoWaterApplyCountTwo> twoConutList;

	/**
	 * 是否需要按月细化（GASENTERPRISELIST新增字段）； “1”：是；“0”：否。
	 */

	private Boolean ISMONTH = false;
	/**
	 * 按月细化明细list集合（按月细化选择是时，此集合有值。）
	 */
	@Fetch(FetchMode.SELECT)
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	@JSONField(name = "APPLYMONTH")
	private List<PermitApplyMonth> ApplyMonthList;

	/**
	 * 主要排放口备注信息
	 */
	private String otherzypfk;
	/**
	 * 一般排放口备注信息
	 */
	private String otherybpfk;

}
